Platform Explorer / Nuxeo Platform 6.0

Contribution org.nuxeo.platform.admin.layoutContrib--layouts

This contribution is part of XML component org.nuxeo.platform.admin.layoutContrib inside nuxeo-admin-center-6.0.jar

Extension Point

Extension point layouts of component WebLayoutManager.

Contributed Items

  • <layout name="fullauditsearch">
          <templates>
            <template mode="any">
              /layouts/layout_default_template.xhtml
            </template>
          </templates>
          <rows>
            <row>
              <widget>startDate</widget>
              <widget>endDate</widget>
            </row>
            <row>
              <widget>eventId</widget>
              <widget>eventCategory</widget>
            </row>
            <row>
              <widget>userId</widget>
            </row>
          </rows>
          <widget name="startDate" type="datetime">
            <labels>
              <label mode="any">label.audit.startDate</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>bas:startDate</field>
            </fields>
            <widgetModes>
              <mode value="create">hidden</mode>
            </widgetModes>
          </widget>
          <widget name="endDate" type="datetime">
            <labels>
              <label mode="any">label.audit.endDate</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>bas:endDate</field>
            </fields>
            <widgetModes>
              <mode value="create">hidden</mode>
            </widgetModes>
          </widget>
          <widget name="eventId" type="selectManyDirectory">
            <labels>
              <label mode="any">label.performedAction</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>bas:eventIds</field>
            </fields>
            <properties mode="any">
              <property name="directoryName">eventTypes</property>
              <property name="localize">true</property>
            </properties>
          </widget>
          <widget name="eventCategory" type="selectOneDirectory">
            <labels>
              <label mode="any">label.category</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>bas:eventCategory</field>
            </fields>
            <properties mode="any">
              <property name="directoryName">eventCategories</property>
              <property name="localize">true</property>
            </properties>
          </widget>
          <widget name="userId" type="singleUserSuggestion">
            <labels>
              <label mode="any">label.username</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>bas:principalName</field>
            </fields>
            <widgetModes>
              <mode value="create">hidden</mode>
            </widgetModes>
            <properties mode="any">
              <property name="userSuggestionSearchType">USER_TYPE</property>
            </properties>
          </widget>
        </layout>
  • <layout name="event_listing">
          <templates>
            <template mode="any">/layouts/layout_listing_ajax_template.xhtml
            </template>
            <template mode="csv">/layouts/layout_listing_csv_template.xhtml
            </template>
            <template mode="pdf">/layouts/layout_listing_pdf_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="showListingHeader">true</property>
            <property name="showRowEvenOddClass">true</property>
          </properties>
          <columns>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">eventId</property>
              </properties>
              <widget>eventId</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">log.eventDate</property>
              </properties>
              <widget>eventDate</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">log.principalName</property>
              </properties>
              <widget>username</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
                <property name="sortPropertyName">log.category</property>
              </properties>
              <widget>eventCategory</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>eventDoc</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>eventComment</widget>
            </column>
            <column>
              <properties mode="any">
                <property name="useFirstWidgetLabelAsColumnHeader">true</property>
              </properties>
              <widget>eventLC</widget>
            </column>
          </columns>
          <widget name="eventId" type="text">
            <labels>
              <label mode="any">label.performedAction</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>data.eventId</field>
            </fields>
            <properties mode="any">
              <property name="localize">true</property>
            </properties>
          </widget>
          <widget name="eventDate" type="datetime">
            <labels>
              <label mode="any">label.date</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>data.eventDate</field>
            </fields>
            <properties widgetMode="any">
              <property name="pattern">#{nxu:basicDateAndTimeFormatter()}</property>
              <property name="timezone">#{timeZone}</property>
            </properties>
            <properties mode="csv">
              <property name="csv_formatMask">#{nxu:basicDateFormatter()}</property>
              <property name="csv_forceType">date</property>
            </properties>
          </widget>
          <widget name="username" type="text">
            <labels>
              <label mode="any">label.username</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>data.principalName</field>
            </fields>
          </widget>
          <widget name="eventCategory" type="text">
            <labels>
              <label mode="any">label.category</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>data:category</field>
            </fields>
            <properties mode="any">
              <property name="localize">true</property>
            </properties>
          </widget>
          <widget name="eventDoc" type="template">
            <labels>
              <label mode="any">label.document</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>data</field>
            </fields>
            <properties mode="any">
              <property name="template">
                /widgets/auditdoc_widget_template.xhtml
              </property>
            </properties>
          </widget>
          <widget name="eventComment" type="text">
            <labels>
              <label mode="any">label.comment</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>data.comment</field>
            </fields>
          </widget>
          <widget name="eventLC" type="text">
            <labels>
              <label mode="any">label.lifecycle</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>data.docLifeCycle</field>
            </fields>
            <properties mode="any">
              <property name="localize">true</property>
            </properties>
          </widget>
        </layout>
  • <layout name="admin_setup_main">
          <templates>
            <template mode="any">
              /incl/sysinfo/setup_layout_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="label">label.setup.table.title.mainSetup</property>
          </properties>
          <rows>
            <row>
              <widget>url</widget>
            </row>
            <row>
              <widget>product.name</widget>
            </row>
            <row>
              <widget>product.version</widget>
            </row>
            <row>
              <widget>bind.address</widget>
            </row>
            <row>
              <widget>nuxeo.conf</widget>
            </row>
            <row>
              <widget>data.dir</widget>
            </row>
            <row>
              <widget>log.dir</widget>
            </row>
            <row>
              <widget>org.nuxeo.dev</widget>
            </row>
            <row>
              <widget>dbtemplate</widget>
            </row>
            <row>
              <widget>database_ajax_decorator</widget>
            </row>
            <row>
              <widget>chooseDirectoryType</widget>
            </row>
            <row>
              <widget>ldap_ajax_decorator</widget>
            </row>
          </rows>
          <widget name="url" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.url</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.url']</field>
            </fields>
            <properties mode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="product.name" type="text">
            <labels>
              <label mode="any">label.setup.org.nuxeo.ecm.product.name</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['org.nuxeo.ecm.product.name']</field>
            </fields>
            <properties mode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="product.version" type="text">
            <labels>
              <label mode="any">label.setup.org.nuxeo.ecm.product.version</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['org.nuxeo.ecm.product.version']</field>
            </fields>
            <properties mode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="bind.address" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.bind.address</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.bind.address']</field>
            </fields>
            <properties mode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="nuxeo.conf" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.conf</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.conf']</field>
            </fields>
            <properties mode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="data.dir" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.data.dir</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.data.dir']</field>
            </fields>
            <properties mode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="log.dir" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.log.dir</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.log.dir']</field>
            </fields>
            <properties mode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="org.nuxeo.dev" type="template">
            <labels>
              <label mode="any">label.setup.nuxeo.org.nuxeo.dev</label>
            </labels>
            <helpLabels>
              <label mode="any">label.setup.nuxeo.org.nuxeo.dev.help</label>
            </helpLabels>
            <translated>true</translated>
            <fields>
              <field>['org.nuxeo.dev']</field>
            </fields>
            <properties mode="any">
              <property name="template">
                /incl/sysinfo/widgets/dev_mode_widget_template.xhtml
              </property>
            </properties>
          </widget>
          <widget name="dbtemplate" type="template">
            <labels>
              <label mode="any">label.setup.database.templates</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.dbtemplate']</field>
            </fields>
            <properties mode="any">
              <property name="template">
                /incl/sysinfo/widgets/database_chooser_widget_template.xhtml
              </property>
              <property name="reRender">database_ajaxPanel</property>
              <property name="ajaxSingle">true</property>
            </properties>
          </widget>
          <widget name="database_ajax_decorator" type="template">
            <handlingLabels>true</handlingLabels>
            <properties mode="any">
              <property name="template">
                /incl/sysinfo/widgets/database_ajax_panel.xhtml
              </property>
              <property name="ajaxPanelId">database_ajaxPanel</property>
              <!-- use a 'rendered' property instead of playing with the
                subwidget mode otherwise proxy selection misbehaves after
                first non-default database
                selection -->
              <property name="rendered">
                #{value['nuxeo.dbtemplate']!='default'}
              </property>
            </properties>
            <subWidgets>
              <widget name="database" type="layout">
                <properties mode="any">
                  <property name="name">admin_setup_database</property>
                </properties>
              </widget>
            </subWidgets>
          </widget>
          <widget name="chooseDirectoryType" type="template">
            <labels>
              <label mode="any">label.setup.directory.type</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>#{setupWizardAction.directoryType}</field>
            </fields>
            <properties mode="any">
              <property name="template">
                /incl/sysinfo/widgets/directory_chooser_widget_template.xhtml
              </property>
              <property name="reRender">ldap_ajaxPanel</property>
              <property name="ajaxSingle">true</property>
            </properties>
          </widget>
          <widget name="ldap_ajax_decorator" type="template">
            <handlingLabels>true</handlingLabels>
            <properties mode="any">
              <property name="template">
                /incl/sysinfo/widgets/database_ajax_panel.xhtml
              </property>
              <property name="ajaxPanelId">ldap_ajaxPanel</property>
              <property name="rendered">
                #{setupWizardAction.directoryType != 'default'}
              </property>
            </properties>
            <subWidgets>
              <widget name="directories" type="layout">
                <properties mode="any">
                  <property name="name">admin_setup_directories</property>
                </properties>
              </widget>
              <widget name="directories_group" type="layout">
                <properties mode="any">
                  <property name="name">admin_setup_directories_group</property>
                </properties>
              </widget>
              <widget name="directories_extra" type="layout">
                <properties mode="any">
                  <property name="name">admin_setup_directories_extra</property>
                </properties>
              </widget>
            </subWidgets>
          </widget>
    
        </layout>
  • <layout name="admin_setup_database">
          <templates>
            <template mode="any">/incl/sysinfo/setup_layout_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="label">label.setup.table.title.dataBase</property>
          </properties>
          <rows>
            <row>
              <widget>dbName</widget>
            </row>
            <row>
              <widget>dbUser</widget>
            </row>
            <row>
              <widget>dbPwd</widget>
            </row>
            <row>
              <widget>dbHost</widget>
            </row>
            <row>
              <widget>dbPort</widget>
            </row>
            <row>
              <widget>dbMinPoolSize</widget>
            </row>
            <row>
              <widget>dbMaxPoolSize</widget>
            </row>
            <row>
              <widget>vcsMinPoolSize</widget>
            </row>
            <row>
              <widget>vcsMaxPoolSize</widget>
            </row>
            <row>
              <widget>checkDatabaseParameters</widget>
            </row>
          </rows>
          <widget name="dbName" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.db.name</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.db.name']</field>
            </fields>
            <properties mode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="dbUser" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.db.user</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.db.user']</field>
            </fields>
            <properties mode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="dbPwd" type="secret">
            <labels>
              <label mode="any">label.setup.nuxeo.db.password</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.db.password']</field>
            </fields>
          </widget>
          <widget name="dbHost" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.db.host</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.db.host']</field>
            </fields>
            <properties mode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="dbPort" type="int">
            <labels>
              <label mode="any">label.setup.nuxeo.db.port</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.db.port']</field>
            </fields>
            <properties mode="edit">
              <property name="size">5</property>
              <property name="maxlength">5</property>
            </properties>
          </widget>
          <widget name="dbMinPoolSize" type="int">
            <labels>
              <label mode="any">label.setup.nuxeo.db.min-pool-size</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.db.min-pool-size']</field>
            </fields>
            <properties mode="edit">
              <property name="size">4</property>
            </properties>
          </widget>
          <widget name="dbMaxPoolSize" type="int">
            <labels>
              <label mode="any">label.setup.nuxeo.db.max-pool-size</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.db.max-pool-size']</field>
            </fields>
            <properties mode="edit">
              <property name="size">4</property>
            </properties>
          </widget>
          <widget name="vcsMinPoolSize" type="int">
            <labels>
              <label mode="any">label.setup.nuxeo.vcs.min-pool-size</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.vcs.min-pool-size']</field>
            </fields>
            <properties mode="edit">
              <property name="size">4</property>
            </properties>
          </widget>
          <widget name="vcsMaxPoolSize" type="int">
            <labels>
              <label mode="any">label.setup.nuxeo.vcs.max-pool-size</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.vcs.max-pool-size']</field>
            </fields>
            <properties mode="edit">
              <property name="size">4</property>
            </properties>
          </widget>
          <widget name="checkDatabaseParameters" type="template">
            <labels>
              <label mode="any"/>
            </labels>
            <properties mode="any">
              <property name="template">
                /incl/sysinfo/widgets/database_check_parameters_template.xhtml
              </property>
            </properties>
          </widget>
        </layout>
  • <layout name="admin_setup_directories">
          <templates>
            <template mode="any">/incl/sysinfo/setup_layout_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="label">label.setup.table.title.directories</property>
          </properties>
          <rows>
            <row>
              <widget>ldapStorage</widget>
            </row>
            <row>
              <widget>ldapUrl</widget>
              <!-- <widget>checkNetwork</widget> -->
            </row>
            <row>
              <widget>ldapBindDn</widget>
            </row>
            <row>
              <widget>ldapBindPassword</widget>
              <widget>checkAuth</widget>
            </row>
            <row>
              <widget>userLdapSearchBaseDn</widget>
            </row>
            <row>
              <widget>userLdapSearchClass</widget>
            </row>
            <row>
              <widget>userLdapSearchFilter</widget>
            </row>
            <row>
              <widget>userLdapSearchScope</widget>
            </row>
            <row>
              <widget>userLdapReadonly</widget>
            </row>
            <row>
              <widget>mappingUserRdn</widget>
            </row>
            <row>
              <widget>mappingUsername</widget>
            </row>
            <row>
              <widget>mappingPassword</widget>
            </row>
            <row>
              <widget>mappingFirstname</widget>
            </row>
            <row>
              <widget>mappingLastname</widget>
            </row>
            <row>
              <widget>mappingEmail</widget>
            </row>
            <row>
              <widget>mappingCompany</widget>
            </row>
          </rows>
          <widget name="ldapStorage" type="template">
            <labels>
              <label mode="any">label.setup.nuxeo.users.storage</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.user.group.storage']</field>
            </fields>
            <properties mode="any">
              <property name="template">
                /incl/sysinfo/widgets/ldap_storage_widget_template.xhtml
              </property>
              <property name="reRender">ldap_group_ajaxPanel</property>
              <property name="ajaxSingle">true</property>
            </properties>
          </widget>
          <widget name="multiStorage" type="selectOneListbox">
            <labels>
              <label mode="any">label.setup.nuxeo.users.storage</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.user.group.storage']</field>
            </fields>
            <selectOptions>
              <option itemLabel="Multidirectory for users and groups" itemValue="multiUserGroup"/>
              <option itemLabel="Multidirectory for users and SQL groups" itemValue="multiUserSqlGroup"/>
              <option itemLabel="LDAP users and multidirectory for groups" itemValue="ldapUserMultiGroup"/>
            </selectOptions>
            <properties widgetMode="any">
              <property name="rendered">
                #{setupWizardAction.directoryType == 'multi'}
              </property>
            </properties>
          </widget>
          <widget name="ldapUrl" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.url</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.url']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="ldapBindDn" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.binddn</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.binddn']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="ldapBindPassword" type="secret">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.bindpassword</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.bindpassword']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
              <property name="redisplay">true</property>
            </properties>
          </widget>
          <widget name="ldapRetries" type="int">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.retries</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.retries']</field>
            </fields>
            <properties mode="edit">
              <property name="size">5</property>
              <property name="maxlength">2</property>
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="userLdapSearchBaseDn" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.user.searchbasedn</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.user.searchBaseDn']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="userLdapSearchClass" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.user.searchclass</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.user.searchClass']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="userLdapSearchFilter" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.user.searchfilter</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.user.searchFilter']</field>
            </fields>
          </widget>
          <widget name="userLdapSearchScope" type="selectOneListbox">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.user.searchscope</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.user.searchScope']</field>
            </fields>
            <selectOptions>
              <option itemLabel="onelevel" itemValue="onelevel"/>
              <option itemLabel="subtree" itemValue="subtree"/>
            </selectOptions>
            <properties widgetMode="any">
              <property name="size">1</property>
            </properties>
          </widget>
          <widget name="userLdapReadonly" type="checkbox">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.user.readonly</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.user.readonly']</field>
            </fields>
          </widget>
          <widget name="mappingUserRdn" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.mapping.user.rdn</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.user.mapping.rdn']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="mappingUsername" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.mapping.user.name</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.user.mapping.username']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="mappingPassword" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.mapping.user.password</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.user.mapping.password']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="mappingFirstname" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.mapping.user.firstname</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.user.mapping.firstname']</field>
            </fields>
          </widget>
          <widget name="mappingLastname" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.mapping.user.lastname</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.user.mapping.lastname']</field>
            </fields>
          </widget>
          <widget name="mappingEmail" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.mapping.user.email</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.user.mapping.email']</field>
            </fields>
          </widget>
          <widget name="mappingCompany" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.mapping.user.company</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.user.mapping.company']</field>
            </fields>
          </widget>
          <widget name="checkNetwork" type="template">
            <labels>
              <label mode="any"/>
            </labels>
            <widgetModes>
              <mode value="edit">#{setupWizardAction.directoryType != 'default' ? 'edit' : 'hidden'}</mode>
            </widgetModes>
            <properties mode="any">
              <property name="template">
                /incl/sysinfo/widgets/directory_check_network_parameters_template.xhtml
              </property>
            </properties>
          </widget>
          <widget name="checkAuth" type="template">
            <labels>
              <label mode="any"/>
            </labels>
            <widgetModes>
              <mode value="edit">#{setupWizardAction.directoryType != 'default' ? 'edit' : 'hidden'}</mode>
            </widgetModes>
            <properties mode="any">
              <property name="template">
                /incl/sysinfo/widgets/directory_check_auth_parameters_template.xhtml
              </property>
            </properties>
          </widget>
        </layout>
  • <layout name="admin_setup_directories_group">
          <templates>
            <template mode="any">/incl/sysinfo/setup_layout_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="ajaxPanelId">ldap_group_ajaxPanel</property>
            <property name="rendered">
              #{setupWizardAction.needGroupConfiguration}
            </property>
          </properties>
          <rows>
            <row>
              <widget>groupLdapSearchBaseDn</widget>
            </row>
            <row>
              <widget>groupLdapSearchFilter</widget>
            </row>
            <row>
              <widget>groupLdapSearchScope</widget>
            </row>
            <row>
              <widget>groupLdapReadonly</widget>
            </row>
            <row>
              <widget>mappingGroupRdn</widget>
            </row>
            <row>
              <widget>mappingGroupname</widget>
            </row>
            <row>
              <widget>mappingGrouplabel</widget>
            </row>
            <row>
              <widget>mappingStaticMembers</widget>
            </row>
            <row>
              <widget>mappingDynamicMembers</widget>
            </row>
          </rows>
          <widget name="groupLdapSearchBaseDn" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.group.searchbasedn</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.group.searchBaseDn']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="groupLdapSearchFilter" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.group.searchfilter</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.group.searchFilter']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="groupLdapSearchScope" type="selectOneListbox">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.group.searchscope</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.group.searchScope']</field>
            </fields>
            <selectOptions>
              <option itemLabel="onelevel" itemValue="onelevel"/>
              <option itemLabel="subtree" itemValue="subtree"/>
            </selectOptions>
            <properties widgetMode="any">
              <property name="size">1</property>
            </properties>
          </widget>
          <widget name="groupLdapReadonly" type="checkbox">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.group.readonly</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.group.readonly']</field>
            </fields>
          </widget>
          <widget name="mappingGroupRdn" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.mapping.group.rdn</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.group.mapping.rdn']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="mappingGroupname" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.mapping.group.name</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.group.mapping.name']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
            </properties>
          </widget>
          <widget name="mappingGrouplabel" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.mapping.group.label</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.group.mapping.label']</field>
            </fields>
          </widget>
          <widget name="mappingStaticMembers" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.mapping.group.members.static</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.group.mapping.members.staticAttributeId']</field>
            </fields>
          </widget>
          <widget name="mappingDynamicMembers" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.mapping.group.members.dynamic</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.group.mapping.members.dynamicAttributeId']</field>
            </fields>
          </widget>
        </layout>
  • <layout name="admin_setup_directories_extra">
          <templates>
            <template mode="any">/incl/sysinfo/setup_layout_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="label"/>
          </properties>
          <rows>
            <row>
              <widget>defaultAdministrator</widget>
            </row>
            <row>
              <widget>defaultMembersGroup</widget>
            </row>
            <row>
              <widget>anonymousUser</widget>
            </row>
            <row>
              <widget>emergencyUser</widget>
            </row>
            <row>
              <widget>emergencyUsername</widget>
            </row>
            <row>
              <widget>emergencyPassword</widget>
            </row>
            <row>
              <widget>emergencyFirstname</widget>
            </row>
            <row>
              <widget>emergencyLastname</widget>
            </row>
          </rows>
          <widget name="defaultAdministrator" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.default.admin</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.defaultAdministratorId']</field>
            </fields>
          </widget>
          <widget name="defaultMembersGroup" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.default.membersGroup</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.ldap.defaultMembersGroup']</field>
            </fields>
          </widget>
          <widget name="anonymousUser" type="checkbox">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.anonymous.enable</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.user.anonymous.enable']</field>
            </fields>
          </widget>
          <widget name="emergencyUser" type="template">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.default.emergency.enable</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.user.emergency.enable']</field>
            </fields>
            <properties mode="any">
              <property name="template">
                /incl/sysinfo/widgets/ajax_checkbox_widget_template.xhtml
              </property>
              <property name="reRender">ldap_ajaxPanel</property>
              <property name="ajaxSingle">true</property>
            </properties>
          </widget>
          <widget name="emergencyUsername" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.default.emergency.username</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.user.emergency.username']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
            </properties>
            <properties widgetMode="any">
              <property name="rendered">
                #{value['nuxeo.user.emergency.enable']}
              </property>
            </properties>
          </widget>
          <widget name="emergencyPassword" type="secret">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.default.emergency.password</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.user.emergency.password']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
              <property name="redisplay">true</property>
            </properties>
            <properties widgetMode="any">
              <property name="rendered">
                #{value['nuxeo.user.emergency.enable']}
              </property>
            </properties>
          </widget>
          <widget name="emergencyFirstname" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.default.emergency.firstname</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.user.emergency.firstname']</field>
            </fields>
            <properties widgetMode="any">
              <property name="rendered">
                #{value['nuxeo.user.emergency.enable']}
              </property>
            </properties>
          </widget>
          <widget name="emergencyLastname" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.ldap.default.emergency.lastname</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.user.emergency.lastname']</field>
            </fields>
            <properties widgetMode="any">
              <property name="rendered">
                #{value['nuxeo.user.emergency.enable']}
              </property>
            </properties>
          </widget>
        </layout>
  • <layout name="admin_choose_proxy">
          <templates>
            <template mode="any">/incl/sysinfo/setup_layout_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="label">label.setup.table.title.httpProxy</property>
            <property name="ajaxPanelId">admin_choose_proxy_ajaxPanel</property>
          </properties>
          <rows>
            <row>
              <widget>chooseProxy</widget>
            </row>
            <row>
              <widget>proxy.host</widget>
            </row>
            <row>
              <widget>proxy.port</widget>
            </row>
            <row>
              <widget>proxy.login</widget>
            </row>
            <row>
              <widget>proxy.password</widget>
            </row>
          </rows>
          <widget name="chooseProxy" type="template">
            <labels>
              <label mode="any">label.setup.httpProxy.type</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>#{setupWizardAction.proxyType}</field>
            </fields>
            <properties mode="any">
              <property name="template">
                /incl/sysinfo/widgets/proxy_chooser_widget_template.xhtml
              </property>
              <property name="reRender">admin_choose_proxy_ajaxPanel</property>
              <property name="ajaxSingle">true</property>
            </properties>
          </widget>
          <widget name="proxy.host" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.http.proxy.host</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.http.proxy.host']</field>
            </fields>
            <properties widgetMode="edit">
              <property name="required">true</property>
            </properties>
            <properties widgetMode="any">
              <!-- use a 'rendered' property instead of playing with the
                subwidget mode otherwise smtp auth misbehaves after
                first non-default proxy type selection -->
              <property name="rendered">
                #{setupWizardAction.proxyType != 'none'}
              </property>
            </properties>
          </widget>
          <widget name="proxy.port" type="int">
            <labels>
              <label mode="any">label.setup.nuxeo.http.proxy.port</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.http.proxy.port']</field>
            </fields>
            <properties mode="edit">
              <property name="size">5</property>
              <property name="maxlength">5</property>
              <property name="required">true</property>
            </properties>
            <properties widgetMode="any">
              <property name="rendered">
                #{setupWizardAction.proxyType != 'none'}
              </property>
            </properties>
          </widget>
          <widget name="proxy.login" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.http.proxy.login</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.http.proxy.login']</field>
            </fields>
            <properties mode="edit">
              <property name="required">true</property>
            </properties>
            <properties widgetMode="any">
              <property name="rendered">
                #{setupWizardAction.proxyType ==
                'authenticated'}
              </property>
            </properties>
          </widget>
          <widget name="proxy.password" type="secret">
            <labels>
              <label mode="any">label.setup.nuxeo.http.proxy.password</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.http.proxy.password']</field>
            </fields>
            <properties widgetMode="any">
              <property name="rendered">
                #{setupWizardAction.proxyType ==
                'authenticated'}
              </property>
            </properties>
          </widget>
        </layout>
  • <layout name="admin_setup_mail">
          <templates>
            <template mode="any">/incl/sysinfo/setup_layout_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="label">label.setup.table.title.email</property>
            <property name="ajaxPanelId">admin_setup_mail_ajaxPanel</property>
          </properties>
          <rows>
            <row>
              <widget>eMailSubjectPrefix</widget>
            </row>
            <row>
              <widget>mailservice.user</widget>
            </row>
            <row>
              <widget>mailservice.password</widget>
            </row>
            <row>
              <widget>mail.store.protocol</widget>
            </row>
            <row>
              <widget>mail.transport.protocol</widget>
            </row>
            <row>
              <widget>mail.store.host</widget>
            </row>
            <row>
              <widget>mail.store.port</widget>
            </row>
            <row>
              <widget>mail.store.user</widget>
            </row>
            <row>
              <widget>mail.store.password</widget>
            </row>
            <row>
              <widget>mail.debug</widget>
            </row>
            <row>
              <widget>mail.transport.host</widget>
            </row>
            <row>
              <widget>mail.transport.port</widget>
            </row>
            <row>
              <widget>mail.transport.auth</widget>
            </row>
            <row>
              <widget>mail.transport.username</widget>
            </row>
            <row>
              <widget>mail.transport.password</widget>
            </row>
            <row>
              <widget>mail.from</widget>
            </row>
            <row>
              <widget>mail.transport.usetls</widget>
            </row>
            <row>
              <widget>mail.user</widget>
            </row>
          </rows>
          <widget name="eMailSubjectPrefix" type="text">
            <labels>
              <label mode="any">label.setup.nuxeo.notification.eMailSubjectPrefix
              </label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['nuxeo.notification.eMailSubjectPrefix']</field>
            </fields>
          </widget>
          <widget name="mailservice.user" type="text">
            <labels>
              <label mode="any">label.setup.mailservice.user</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mailservice.user']</field>
            </fields>
          </widget>
          <widget name="mailservice.password" type="secret">
            <labels>
              <label mode="any">label.setup.mailservice.password</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mailservice.password']</field>
            </fields>
          </widget>
          <widget name="mail.store.protocol" type="text">
            <labels>
              <label mode="any">label.setup.mail.store.protocol</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.store.protocol']</field>
            </fields>
          </widget>
          <widget name="mail.transport.protocol" type="text">
            <labels>
              <label mode="any">label.setup.mail.transport.protocol</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.transport.protocol']</field>
            </fields>
          </widget>
          <widget name="mail.store.host" type="text">
            <labels>
              <label mode="any">label.setup.mail.store.host</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.store.host']</field>
            </fields>
          </widget>
          <widget name="mail.store.port" type="int">
            <labels>
              <label mode="any">label.setup.mail.store.port</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.store.port']</field>
            </fields>
            <properties mode="edit">
              <property name="size">5</property>
              <property name="maxlength">5</property>
              <property name="styleClass">dataInputText</property>
              <property name="required">false</property>
            </properties>
          </widget>
          <widget name="mail.store.user" type="text">
            <labels>
              <label mode="any">label.setup.mail.store.user</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.store.user']</field>
            </fields>
            <properties mode="edit">
              <property name="styleClass">dataInputText</property>
              <property name="required">false</property>
            </properties>
          </widget>
          <widget name="mail.store.password" type="secret">
            <labels>
              <label mode="any">label.setup.mail.store.password</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.store.password']</field>
            </fields>
            <properties mode="edit">
              <property name="styleClass">dataInputText</property>
              <property name="required">false</property>
            </properties>
          </widget>
          <widget name="mail.debug" type="checkbox">
            <labels>
              <label mode="any">label.setup.mail.debug</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.debug']</field>
            </fields>
          </widget>
          <widget name="mail.transport.host" type="text">
            <labels>
              <label mode="any">label.setup.mail.transport.host</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.transport.host']</field>
            </fields>
            <properties mode="edit">
            </properties>
          </widget>
          <widget name="mail.transport.port" type="int">
            <labels>
              <label mode="any">label.setup.mail.transport.port</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.transport.port']</field>
            </fields>
            <properties mode="edit">
              <property name="size">5</property>
              <property name="maxlength">5</property>
            </properties>
          </widget>
          <widget name="mail.transport.auth" type="template">
            <labels>
              <label mode="any">label.setup.mail.transport.auth</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.transport.auth']</field>
            </fields>
            <properties mode="any">
              <property name="template">
                /incl/sysinfo/widgets/ajax_checkbox_widget_template.xhtml
              </property>
              <property name="reRender">admin_setup_mail_ajaxPanel</property>
              <property name="ajaxSingle">true</property>
            </properties>
          </widget>
          <widget name="mail.transport.username" type="text">
            <labels>
              <label mode="any">label.setup.mail.transport.user</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.transport.username']</field>
            </fields>
            <properties widgetMode="any">
              <property name="rendered">
                #{value['mail.transport.auth'] == true}
              </property>
            </properties>
          </widget>
          <widget name="mail.transport.password" type="secret">
            <labels>
              <label mode="any">label.setup.mail.transport.password</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.transport.password']</field>
            </fields>
            <properties widgetMode="any">
              <property name="rendered">
                #{value['mail.transport.auth'] == true}
              </property>
            </properties>
          </widget>
          <widget name="mail.from" type="text">
            <labels>
              <label mode="any">label.setup.mail.from</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.from']</field>
            </fields>
          </widget>
          <widget name="mail.transport.usetls" type="checkbox">
            <labels>
              <label mode="any">label.setup.mail.transport.usetls</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.transport.usetls']</field>
            </fields>
          </widget>
          <widget name="mail.user" type="text">
            <labels>
              <label mode="any">label.setup.mail.user</label>
            </labels>
            <translated>true</translated>
            <fields>
              <field>['mail.user']</field>
            </fields>
          </widget>
        </layout>
  • <layout name="admin_setup_custom_properties">
          <templates>
            <template mode="any">
              /incl/sysinfo/setup_layout_template.xhtml
            </template>
          </templates>
          <properties mode="any">
            <property name="label">label.setup.table.title.custom</property>
          </properties>
        </layout>

XML Source

<extension point="layouts" target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager">

    <layout name="fullauditsearch">
      <templates>
        <template mode="any">
          /layouts/layout_default_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <widget>startDate</widget>
          <widget>endDate</widget>
        </row>
        <row>
          <widget>eventId</widget>
          <widget>eventCategory</widget>
        </row>
        <row>
          <widget>userId</widget>
        </row>
      </rows>
      <widget name="startDate" type="datetime">
        <labels>
          <label mode="any">label.audit.startDate</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>bas:startDate</field>
        </fields>
        <widgetModes>
          <mode value="create">hidden</mode>
        </widgetModes>
      </widget>
      <widget name="endDate" type="datetime">
        <labels>
          <label mode="any">label.audit.endDate</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>bas:endDate</field>
        </fields>
        <widgetModes>
          <mode value="create">hidden</mode>
        </widgetModes>
      </widget>
      <widget name="eventId" type="selectManyDirectory">
        <labels>
          <label mode="any">label.performedAction</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>bas:eventIds</field>
        </fields>
        <properties mode="any">
          <property name="directoryName">eventTypes</property>
          <property name="localize">true</property>
        </properties>
      </widget>
      <widget name="eventCategory" type="selectOneDirectory">
        <labels>
          <label mode="any">label.category</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>bas:eventCategory</field>
        </fields>
        <properties mode="any">
          <property name="directoryName">eventCategories</property>
          <property name="localize">true</property>
        </properties>
      </widget>
      <widget name="userId" type="singleUserSuggestion">
        <labels>
          <label mode="any">label.username</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>bas:principalName</field>
        </fields>
        <widgetModes>
          <mode value="create">hidden</mode>
        </widgetModes>
        <properties mode="any">
          <property name="userSuggestionSearchType">USER_TYPE</property>
        </properties>
      </widget>
    </layout>

    <!-- TODO: define global widgets to be shared with event logs displayed in document
      tabs -->
    <layout name="event_listing">
      <templates>
        <template mode="any">/layouts/layout_listing_ajax_template.xhtml
        </template>
        <template mode="csv">/layouts/layout_listing_csv_template.xhtml
        </template>
        <template mode="pdf">/layouts/layout_listing_pdf_template.xhtml
        </template>
      </templates>
      <properties mode="any">
        <property name="showListingHeader">true</property>
        <property name="showRowEvenOddClass">true</property>
      </properties>
      <columns>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
            <property name="sortPropertyName">eventId</property>
          </properties>
          <widget>eventId</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
            <property name="sortPropertyName">log.eventDate</property>
          </properties>
          <widget>eventDate</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
            <property name="sortPropertyName">log.principalName</property>
          </properties>
          <widget>username</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
            <property name="sortPropertyName">log.category</property>
          </properties>
          <widget>eventCategory</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
          </properties>
          <widget>eventDoc</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
          </properties>
          <widget>eventComment</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
          </properties>
          <widget>eventLC</widget>
        </column>
      </columns>
      <widget name="eventId" type="text">
        <labels>
          <label mode="any">label.performedAction</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>data.eventId</field>
        </fields>
        <properties mode="any">
          <property name="localize">true</property>
        </properties>
      </widget>
      <widget name="eventDate" type="datetime">
        <labels>
          <label mode="any">label.date</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>data.eventDate</field>
        </fields>
        <properties widgetMode="any">
          <property name="pattern">#{nxu:basicDateAndTimeFormatter()}</property>
          <property name="timezone">#{timeZone}</property>
        </properties>
        <properties mode="csv">
          <property name="csv_formatMask">#{nxu:basicDateFormatter()}</property>
          <property name="csv_forceType">date</property>
        </properties>
      </widget>
      <widget name="username" type="text">
        <labels>
          <label mode="any">label.username</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>data.principalName</field>
        </fields>
      </widget>
      <widget name="eventCategory" type="text">
        <labels>
          <label mode="any">label.category</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>data:category</field>
        </fields>
        <properties mode="any">
          <property name="localize">true</property>
        </properties>
      </widget>
      <widget name="eventDoc" type="template">
        <labels>
          <label mode="any">label.document</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>data</field>
        </fields>
        <properties mode="any">
          <property name="template">
            /widgets/auditdoc_widget_template.xhtml
          </property>
        </properties>
      </widget>
      <widget name="eventComment" type="text">
        <labels>
          <label mode="any">label.comment</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>data.comment</field>
        </fields>
      </widget>
      <widget name="eventLC" type="text">
        <labels>
          <label mode="any">label.lifecycle</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>data.docLifeCycle</field>
        </fields>
        <properties mode="any">
          <property name="localize">true</property>
        </properties>
      </widget>
    </layout>

    <!-- TODO: debug/dev mode -->
    <layout name="admin_setup_main">
      <templates>
        <template mode="any">
          /incl/sysinfo/setup_layout_template.xhtml
        </template>
      </templates>
      <properties mode="any">
        <property name="label">label.setup.table.title.mainSetup</property>
      </properties>
      <rows>
        <row>
          <widget>url</widget>
        </row>
        <row>
          <widget>product.name</widget>
        </row>
        <row>
          <widget>product.version</widget>
        </row>
        <row>
          <widget>bind.address</widget>
        </row>
        <row>
          <widget>nuxeo.conf</widget>
        </row>
        <row>
          <widget>data.dir</widget>
        </row>
        <row>
          <widget>log.dir</widget>
        </row>
        <row>
          <widget>org.nuxeo.dev</widget>
        </row>
        <row>
          <widget>dbtemplate</widget>
        </row>
        <row>
          <widget>database_ajax_decorator</widget>
        </row>
        <row>
          <widget>chooseDirectoryType</widget>
        </row>
        <row>
          <widget>ldap_ajax_decorator</widget>
        </row>
      </rows>
      <widget name="url" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.url</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.url']</field>
        </fields>
        <properties mode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="product.name" type="text">
        <labels>
          <label mode="any">label.setup.org.nuxeo.ecm.product.name</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['org.nuxeo.ecm.product.name']</field>
        </fields>
        <properties mode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="product.version" type="text">
        <labels>
          <label mode="any">label.setup.org.nuxeo.ecm.product.version</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['org.nuxeo.ecm.product.version']</field>
        </fields>
        <properties mode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="bind.address" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.bind.address</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.bind.address']</field>
        </fields>
        <properties mode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="nuxeo.conf" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.conf</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.conf']</field>
        </fields>
        <properties mode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="data.dir" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.data.dir</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.data.dir']</field>
        </fields>
        <properties mode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="log.dir" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.log.dir</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.log.dir']</field>
        </fields>
        <properties mode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="org.nuxeo.dev" type="template">
        <labels>
          <label mode="any">label.setup.nuxeo.org.nuxeo.dev</label>
        </labels>
        <helpLabels>
          <label mode="any">label.setup.nuxeo.org.nuxeo.dev.help</label>
        </helpLabels>
        <translated>true</translated>
        <fields>
          <field>['org.nuxeo.dev']</field>
        </fields>
        <properties mode="any">
          <property name="template">
            /incl/sysinfo/widgets/dev_mode_widget_template.xhtml
          </property>
        </properties>
      </widget>
      <widget name="dbtemplate" type="template">
        <labels>
          <label mode="any">label.setup.database.templates</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.dbtemplate']</field>
        </fields>
        <properties mode="any">
          <property name="template">
            /incl/sysinfo/widgets/database_chooser_widget_template.xhtml
          </property>
          <property name="reRender">database_ajaxPanel</property>
          <property name="ajaxSingle">true</property>
        </properties>
      </widget>
      <widget name="database_ajax_decorator" type="template">
        <handlingLabels>true</handlingLabels>
        <properties mode="any">
          <property name="template">
            /incl/sysinfo/widgets/database_ajax_panel.xhtml
          </property>
          <property name="ajaxPanelId">database_ajaxPanel</property>
          <!-- use a 'rendered' property instead of playing with the
            subwidget mode otherwise proxy selection misbehaves after
            first non-default database
            selection -->
          <property name="rendered">
            #{value['nuxeo.dbtemplate']!='default'}
          </property>
        </properties>
        <subWidgets>
          <widget name="database" type="layout">
            <properties mode="any">
              <property name="name">admin_setup_database</property>
            </properties>
          </widget>
        </subWidgets>
      </widget>
      <widget name="chooseDirectoryType" type="template">
        <labels>
          <label mode="any">label.setup.directory.type</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>#{setupWizardAction.directoryType}</field>
        </fields>
        <properties mode="any">
          <property name="template">
            /incl/sysinfo/widgets/directory_chooser_widget_template.xhtml
          </property>
          <property name="reRender">ldap_ajaxPanel</property>
          <property name="ajaxSingle">true</property>
        </properties>
      </widget>
      <widget name="ldap_ajax_decorator" type="template">
        <handlingLabels>true</handlingLabels>
        <properties mode="any">
          <property name="template">
            /incl/sysinfo/widgets/database_ajax_panel.xhtml
          </property>
          <property name="ajaxPanelId">ldap_ajaxPanel</property>
          <property name="rendered">
            #{setupWizardAction.directoryType != 'default'}
          </property>
        </properties>
        <subWidgets>
          <widget name="directories" type="layout">
            <properties mode="any">
              <property name="name">admin_setup_directories</property>
            </properties>
          </widget>
          <widget name="directories_group" type="layout">
            <properties mode="any">
              <property name="name">admin_setup_directories_group</property>
            </properties>
          </widget>
          <widget name="directories_extra" type="layout">
            <properties mode="any">
              <property name="name">admin_setup_directories_extra</property>
            </properties>
          </widget>
        </subWidgets>
      </widget>

    </layout>

    <layout name="admin_setup_database">
      <templates>
        <template mode="any">/incl/sysinfo/setup_layout_template.xhtml
        </template>
      </templates>
      <properties mode="any">
        <property name="label">label.setup.table.title.dataBase</property>
      </properties>
      <rows>
        <row>
          <widget>dbName</widget>
        </row>
        <row>
          <widget>dbUser</widget>
        </row>
        <row>
          <widget>dbPwd</widget>
        </row>
        <row>
          <widget>dbHost</widget>
        </row>
        <row>
          <widget>dbPort</widget>
        </row>
        <row>
          <widget>dbMinPoolSize</widget>
        </row>
        <row>
          <widget>dbMaxPoolSize</widget>
        </row>
        <row>
          <widget>vcsMinPoolSize</widget>
        </row>
        <row>
          <widget>vcsMaxPoolSize</widget>
        </row>
        <row>
          <widget>checkDatabaseParameters</widget>
        </row>
      </rows>
      <widget name="dbName" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.db.name</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.db.name']</field>
        </fields>
        <properties mode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="dbUser" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.db.user</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.db.user']</field>
        </fields>
        <properties mode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="dbPwd" type="secret">
        <labels>
          <label mode="any">label.setup.nuxeo.db.password</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.db.password']</field>
        </fields>
      </widget>
      <widget name="dbHost" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.db.host</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.db.host']</field>
        </fields>
        <properties mode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="dbPort" type="int">
        <labels>
          <label mode="any">label.setup.nuxeo.db.port</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.db.port']</field>
        </fields>
        <properties mode="edit">
          <property name="size">5</property>
          <property name="maxlength">5</property>
        </properties>
      </widget>
      <widget name="dbMinPoolSize" type="int">
        <labels>
          <label mode="any">label.setup.nuxeo.db.min-pool-size</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.db.min-pool-size']</field>
        </fields>
        <properties mode="edit">
          <property name="size">4</property>
        </properties>
      </widget>
      <widget name="dbMaxPoolSize" type="int">
        <labels>
          <label mode="any">label.setup.nuxeo.db.max-pool-size</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.db.max-pool-size']</field>
        </fields>
        <properties mode="edit">
          <property name="size">4</property>
        </properties>
      </widget>
      <widget name="vcsMinPoolSize" type="int">
        <labels>
          <label mode="any">label.setup.nuxeo.vcs.min-pool-size</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.vcs.min-pool-size']</field>
        </fields>
        <properties mode="edit">
          <property name="size">4</property>
        </properties>
      </widget>
      <widget name="vcsMaxPoolSize" type="int">
        <labels>
          <label mode="any">label.setup.nuxeo.vcs.max-pool-size</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.vcs.max-pool-size']</field>
        </fields>
        <properties mode="edit">
          <property name="size">4</property>
        </properties>
      </widget>
      <widget name="checkDatabaseParameters" type="template">
        <labels>
          <label mode="any"/>
        </labels>
        <properties mode="any">
          <property name="template">
            /incl/sysinfo/widgets/database_check_parameters_template.xhtml
          </property>
        </properties>
      </widget>
    </layout>

    <layout name="admin_setup_directories">
      <templates>
        <template mode="any">/incl/sysinfo/setup_layout_template.xhtml
        </template>
      </templates>
      <properties mode="any">
        <property name="label">label.setup.table.title.directories</property>
      </properties>
      <rows>
        <row>
          <widget>ldapStorage</widget>
        </row>
        <row>
          <widget>ldapUrl</widget>
          <!-- <widget>checkNetwork</widget> -->
        </row>
        <row>
          <widget>ldapBindDn</widget>
        </row>
        <row>
          <widget>ldapBindPassword</widget>
          <widget>checkAuth</widget>
        </row>
        <row>
          <widget>userLdapSearchBaseDn</widget>
        </row>
        <row>
          <widget>userLdapSearchClass</widget>
        </row>
        <row>
          <widget>userLdapSearchFilter</widget>
        </row>
        <row>
          <widget>userLdapSearchScope</widget>
        </row>
        <row>
          <widget>userLdapReadonly</widget>
        </row>
        <row>
          <widget>mappingUserRdn</widget>
        </row>
        <row>
          <widget>mappingUsername</widget>
        </row>
        <row>
          <widget>mappingPassword</widget>
        </row>
        <row>
          <widget>mappingFirstname</widget>
        </row>
        <row>
          <widget>mappingLastname</widget>
        </row>
        <row>
          <widget>mappingEmail</widget>
        </row>
        <row>
          <widget>mappingCompany</widget>
        </row>
      </rows>
      <widget name="ldapStorage" type="template">
        <labels>
          <label mode="any">label.setup.nuxeo.users.storage</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.user.group.storage']</field>
        </fields>
        <properties mode="any">
          <property name="template">
            /incl/sysinfo/widgets/ldap_storage_widget_template.xhtml
          </property>
          <property name="reRender">ldap_group_ajaxPanel</property>
          <property name="ajaxSingle">true</property>
        </properties>
      </widget>
      <widget name="multiStorage" type="selectOneListbox">
        <labels>
          <label mode="any">label.setup.nuxeo.users.storage</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.user.group.storage']</field>
        </fields>
        <selectOptions>
          <option itemLabel="Multidirectory for users and groups" itemValue="multiUserGroup"/>
          <option itemLabel="Multidirectory for users and SQL groups" itemValue="multiUserSqlGroup"/>
          <option itemLabel="LDAP users and multidirectory for groups" itemValue="ldapUserMultiGroup"/>
        </selectOptions>
        <properties widgetMode="any">
          <property name="rendered">
            #{setupWizardAction.directoryType == 'multi'}
          </property>
        </properties>
      </widget>
      <widget name="ldapUrl" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.url</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.url']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="ldapBindDn" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.binddn</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.binddn']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="ldapBindPassword" type="secret">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.bindpassword</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.bindpassword']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
          <property name="redisplay">true</property>
        </properties>
      </widget>
      <widget name="ldapRetries" type="int">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.retries</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.retries']</field>
        </fields>
        <properties mode="edit">
          <property name="size">5</property>
          <property name="maxlength">2</property>
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="userLdapSearchBaseDn" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.user.searchbasedn</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.user.searchBaseDn']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="userLdapSearchClass" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.user.searchclass</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.user.searchClass']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="userLdapSearchFilter" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.user.searchfilter</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.user.searchFilter']</field>
        </fields>
      </widget>
      <widget name="userLdapSearchScope" type="selectOneListbox">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.user.searchscope</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.user.searchScope']</field>
        </fields>
        <selectOptions>
          <option itemLabel="onelevel" itemValue="onelevel"/>
          <option itemLabel="subtree" itemValue="subtree"/>
        </selectOptions>
        <properties widgetMode="any">
          <property name="size">1</property>
        </properties>
      </widget>
      <widget name="userLdapReadonly" type="checkbox">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.user.readonly</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.user.readonly']</field>
        </fields>
      </widget>
      <widget name="mappingUserRdn" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.mapping.user.rdn</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.user.mapping.rdn']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="mappingUsername" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.mapping.user.name</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.user.mapping.username']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="mappingPassword" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.mapping.user.password</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.user.mapping.password']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="mappingFirstname" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.mapping.user.firstname</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.user.mapping.firstname']</field>
        </fields>
      </widget>
      <widget name="mappingLastname" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.mapping.user.lastname</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.user.mapping.lastname']</field>
        </fields>
      </widget>
      <widget name="mappingEmail" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.mapping.user.email</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.user.mapping.email']</field>
        </fields>
      </widget>
      <widget name="mappingCompany" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.mapping.user.company</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.user.mapping.company']</field>
        </fields>
      </widget>
      <widget name="checkNetwork" type="template">
        <labels>
          <label mode="any"/>
        </labels>
        <widgetModes>
          <mode value="edit">#{setupWizardAction.directoryType != 'default' ? 'edit' : 'hidden'}</mode>
        </widgetModes>
        <properties mode="any">
          <property name="template">
            /incl/sysinfo/widgets/directory_check_network_parameters_template.xhtml
          </property>
        </properties>
      </widget>
      <widget name="checkAuth" type="template">
        <labels>
          <label mode="any"/>
        </labels>
        <widgetModes>
          <mode value="edit">#{setupWizardAction.directoryType != 'default' ? 'edit' : 'hidden'}</mode>
        </widgetModes>
        <properties mode="any">
          <property name="template">
            /incl/sysinfo/widgets/directory_check_auth_parameters_template.xhtml
          </property>
        </properties>
      </widget>
    </layout>

    <layout name="admin_setup_directories_group">
      <templates>
        <template mode="any">/incl/sysinfo/setup_layout_template.xhtml
        </template>
      </templates>
      <properties mode="any">
        <property name="ajaxPanelId">ldap_group_ajaxPanel</property>
        <property name="rendered">
          #{setupWizardAction.needGroupConfiguration}
        </property>
      </properties>
      <rows>
        <row>
          <widget>groupLdapSearchBaseDn</widget>
        </row>
        <row>
          <widget>groupLdapSearchFilter</widget>
        </row>
        <row>
          <widget>groupLdapSearchScope</widget>
        </row>
        <row>
          <widget>groupLdapReadonly</widget>
        </row>
        <row>
          <widget>mappingGroupRdn</widget>
        </row>
        <row>
          <widget>mappingGroupname</widget>
        </row>
        <row>
          <widget>mappingGrouplabel</widget>
        </row>
        <row>
          <widget>mappingStaticMembers</widget>
        </row>
        <row>
          <widget>mappingDynamicMembers</widget>
        </row>
      </rows>
      <widget name="groupLdapSearchBaseDn" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.group.searchbasedn</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.group.searchBaseDn']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="groupLdapSearchFilter" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.group.searchfilter</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.group.searchFilter']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="groupLdapSearchScope" type="selectOneListbox">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.group.searchscope</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.group.searchScope']</field>
        </fields>
        <selectOptions>
          <option itemLabel="onelevel" itemValue="onelevel"/>
          <option itemLabel="subtree" itemValue="subtree"/>
        </selectOptions>
        <properties widgetMode="any">
          <property name="size">1</property>
        </properties>
      </widget>
      <widget name="groupLdapReadonly" type="checkbox">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.group.readonly</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.group.readonly']</field>
        </fields>
      </widget>
      <widget name="mappingGroupRdn" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.mapping.group.rdn</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.group.mapping.rdn']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="mappingGroupname" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.mapping.group.name</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.group.mapping.name']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
        </properties>
      </widget>
      <widget name="mappingGrouplabel" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.mapping.group.label</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.group.mapping.label']</field>
        </fields>
      </widget>
      <widget name="mappingStaticMembers" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.mapping.group.members.static</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.group.mapping.members.staticAttributeId']</field>
        </fields>
      </widget>
      <widget name="mappingDynamicMembers" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.mapping.group.members.dynamic</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.group.mapping.members.dynamicAttributeId']</field>
        </fields>
      </widget>
    </layout>

    <layout name="admin_setup_directories_extra">
      <templates>
        <template mode="any">/incl/sysinfo/setup_layout_template.xhtml
        </template>
      </templates>
      <properties mode="any">
        <property name="label"/>
      </properties>
      <rows>
        <row>
          <widget>defaultAdministrator</widget>
        </row>
        <row>
          <widget>defaultMembersGroup</widget>
        </row>
        <row>
          <widget>anonymousUser</widget>
        </row>
        <row>
          <widget>emergencyUser</widget>
        </row>
        <row>
          <widget>emergencyUsername</widget>
        </row>
        <row>
          <widget>emergencyPassword</widget>
        </row>
        <row>
          <widget>emergencyFirstname</widget>
        </row>
        <row>
          <widget>emergencyLastname</widget>
        </row>
      </rows>
      <widget name="defaultAdministrator" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.default.admin</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.defaultAdministratorId']</field>
        </fields>
      </widget>
      <widget name="defaultMembersGroup" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.default.membersGroup</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.ldap.defaultMembersGroup']</field>
        </fields>
      </widget>
      <widget name="anonymousUser" type="checkbox">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.anonymous.enable</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.user.anonymous.enable']</field>
        </fields>
      </widget>
      <widget name="emergencyUser" type="template">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.default.emergency.enable</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.user.emergency.enable']</field>
        </fields>
        <properties mode="any">
          <property name="template">
            /incl/sysinfo/widgets/ajax_checkbox_widget_template.xhtml
          </property>
          <property name="reRender">ldap_ajaxPanel</property>
          <property name="ajaxSingle">true</property>
        </properties>
      </widget>
      <widget name="emergencyUsername" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.default.emergency.username</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.user.emergency.username']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
        </properties>
        <properties widgetMode="any">
          <property name="rendered">
            #{value['nuxeo.user.emergency.enable']}
          </property>
        </properties>
      </widget>
      <widget name="emergencyPassword" type="secret">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.default.emergency.password</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.user.emergency.password']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
          <property name="redisplay">true</property>
        </properties>
        <properties widgetMode="any">
          <property name="rendered">
            #{value['nuxeo.user.emergency.enable']}
          </property>
        </properties>
      </widget>
      <widget name="emergencyFirstname" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.default.emergency.firstname</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.user.emergency.firstname']</field>
        </fields>
        <properties widgetMode="any">
          <property name="rendered">
            #{value['nuxeo.user.emergency.enable']}
          </property>
        </properties>
      </widget>
      <widget name="emergencyLastname" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.ldap.default.emergency.lastname</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.user.emergency.lastname']</field>
        </fields>
        <properties widgetMode="any">
          <property name="rendered">
            #{value['nuxeo.user.emergency.enable']}
          </property>
        </properties>
      </widget>
    </layout>

    <layout name="admin_choose_proxy">
      <templates>
        <template mode="any">/incl/sysinfo/setup_layout_template.xhtml
        </template>
      </templates>
      <properties mode="any">
        <property name="label">label.setup.table.title.httpProxy</property>
        <property name="ajaxPanelId">admin_choose_proxy_ajaxPanel</property>
      </properties>
      <rows>
        <row>
          <widget>chooseProxy</widget>
        </row>
        <row>
          <widget>proxy.host</widget>
        </row>
        <row>
          <widget>proxy.port</widget>
        </row>
        <row>
          <widget>proxy.login</widget>
        </row>
        <row>
          <widget>proxy.password</widget>
        </row>
      </rows>
      <widget name="chooseProxy" type="template">
        <labels>
          <label mode="any">label.setup.httpProxy.type</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>#{setupWizardAction.proxyType}</field>
        </fields>
        <properties mode="any">
          <property name="template">
            /incl/sysinfo/widgets/proxy_chooser_widget_template.xhtml
          </property>
          <property name="reRender">admin_choose_proxy_ajaxPanel</property>
          <property name="ajaxSingle">true</property>
        </properties>
      </widget>
      <widget name="proxy.host" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.http.proxy.host</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.http.proxy.host']</field>
        </fields>
        <properties widgetMode="edit">
          <property name="required">true</property>
        </properties>
        <properties widgetMode="any">
          <!-- use a 'rendered' property instead of playing with the
            subwidget mode otherwise smtp auth misbehaves after
            first non-default proxy type selection -->
          <property name="rendered">
            #{setupWizardAction.proxyType != 'none'}
          </property>
        </properties>
      </widget>
      <widget name="proxy.port" type="int">
        <labels>
          <label mode="any">label.setup.nuxeo.http.proxy.port</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.http.proxy.port']</field>
        </fields>
        <properties mode="edit">
          <property name="size">5</property>
          <property name="maxlength">5</property>
          <property name="required">true</property>
        </properties>
        <properties widgetMode="any">
          <property name="rendered">
            #{setupWizardAction.proxyType != 'none'}
          </property>
        </properties>
      </widget>
      <widget name="proxy.login" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.http.proxy.login</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.http.proxy.login']</field>
        </fields>
        <properties mode="edit">
          <property name="required">true</property>
        </properties>
        <properties widgetMode="any">
          <property name="rendered">
            #{setupWizardAction.proxyType ==
            'authenticated'}
          </property>
        </properties>
      </widget>
      <widget name="proxy.password" type="secret">
        <labels>
          <label mode="any">label.setup.nuxeo.http.proxy.password</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.http.proxy.password']</field>
        </fields>
        <properties widgetMode="any">
          <property name="rendered">
            #{setupWizardAction.proxyType ==
            'authenticated'}
          </property>
        </properties>
      </widget>
    </layout>

    <layout name="admin_setup_mail">
      <templates>
        <template mode="any">/incl/sysinfo/setup_layout_template.xhtml
        </template>
      </templates>
      <properties mode="any">
        <property name="label">label.setup.table.title.email</property>
        <property name="ajaxPanelId">admin_setup_mail_ajaxPanel</property>
      </properties>
      <rows>
        <row>
          <widget>eMailSubjectPrefix</widget>
        </row>
        <row>
          <widget>mailservice.user</widget>
        </row>
        <row>
          <widget>mailservice.password</widget>
        </row>
        <row>
          <widget>mail.store.protocol</widget>
        </row>
        <row>
          <widget>mail.transport.protocol</widget>
        </row>
        <row>
          <widget>mail.store.host</widget>
        </row>
        <row>
          <widget>mail.store.port</widget>
        </row>
        <row>
          <widget>mail.store.user</widget>
        </row>
        <row>
          <widget>mail.store.password</widget>
        </row>
        <row>
          <widget>mail.debug</widget>
        </row>
        <row>
          <widget>mail.transport.host</widget>
        </row>
        <row>
          <widget>mail.transport.port</widget>
        </row>
        <row>
          <widget>mail.transport.auth</widget>
        </row>
        <row>
          <widget>mail.transport.username</widget>
        </row>
        <row>
          <widget>mail.transport.password</widget>
        </row>
        <row>
          <widget>mail.from</widget>
        </row>
        <row>
          <widget>mail.transport.usetls</widget>
        </row>
        <row>
          <widget>mail.user</widget>
        </row>
      </rows>
      <widget name="eMailSubjectPrefix" type="text">
        <labels>
          <label mode="any">label.setup.nuxeo.notification.eMailSubjectPrefix
          </label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['nuxeo.notification.eMailSubjectPrefix']</field>
        </fields>
      </widget>
      <widget name="mailservice.user" type="text">
        <labels>
          <label mode="any">label.setup.mailservice.user</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mailservice.user']</field>
        </fields>
      </widget>
      <widget name="mailservice.password" type="secret">
        <labels>
          <label mode="any">label.setup.mailservice.password</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mailservice.password']</field>
        </fields>
      </widget>
      <widget name="mail.store.protocol" type="text">
        <labels>
          <label mode="any">label.setup.mail.store.protocol</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.store.protocol']</field>
        </fields>
      </widget>
      <widget name="mail.transport.protocol" type="text">
        <labels>
          <label mode="any">label.setup.mail.transport.protocol</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.transport.protocol']</field>
        </fields>
      </widget>
      <widget name="mail.store.host" type="text">
        <labels>
          <label mode="any">label.setup.mail.store.host</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.store.host']</field>
        </fields>
      </widget>
      <widget name="mail.store.port" type="int">
        <labels>
          <label mode="any">label.setup.mail.store.port</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.store.port']</field>
        </fields>
        <properties mode="edit">
          <property name="size">5</property>
          <property name="maxlength">5</property>
          <property name="styleClass">dataInputText</property>
          <property name="required">false</property>
        </properties>
      </widget>
      <widget name="mail.store.user" type="text">
        <labels>
          <label mode="any">label.setup.mail.store.user</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.store.user']</field>
        </fields>
        <properties mode="edit">
          <property name="styleClass">dataInputText</property>
          <property name="required">false</property>
        </properties>
      </widget>
      <widget name="mail.store.password" type="secret">
        <labels>
          <label mode="any">label.setup.mail.store.password</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.store.password']</field>
        </fields>
        <properties mode="edit">
          <property name="styleClass">dataInputText</property>
          <property name="required">false</property>
        </properties>
      </widget>
      <widget name="mail.debug" type="checkbox">
        <labels>
          <label mode="any">label.setup.mail.debug</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.debug']</field>
        </fields>
      </widget>
      <widget name="mail.transport.host" type="text">
        <labels>
          <label mode="any">label.setup.mail.transport.host</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.transport.host']</field>
        </fields>
        <properties mode="edit">
        </properties>
      </widget>
      <widget name="mail.transport.port" type="int">
        <labels>
          <label mode="any">label.setup.mail.transport.port</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.transport.port']</field>
        </fields>
        <properties mode="edit">
          <property name="size">5</property>
          <property name="maxlength">5</property>
        </properties>
      </widget>
      <widget name="mail.transport.auth" type="template">
        <labels>
          <label mode="any">label.setup.mail.transport.auth</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.transport.auth']</field>
        </fields>
        <properties mode="any">
          <property name="template">
            /incl/sysinfo/widgets/ajax_checkbox_widget_template.xhtml
          </property>
          <property name="reRender">admin_setup_mail_ajaxPanel</property>
          <property name="ajaxSingle">true</property>
        </properties>
      </widget>
      <widget name="mail.transport.username" type="text">
        <labels>
          <label mode="any">label.setup.mail.transport.user</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.transport.username']</field>
        </fields>
        <properties widgetMode="any">
          <property name="rendered">
            #{value['mail.transport.auth'] == true}
          </property>
        </properties>
      </widget>
      <widget name="mail.transport.password" type="secret">
        <labels>
          <label mode="any">label.setup.mail.transport.password</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.transport.password']</field>
        </fields>
        <properties widgetMode="any">
          <property name="rendered">
            #{value['mail.transport.auth'] == true}
          </property>
        </properties>
      </widget>
      <widget name="mail.from" type="text">
        <labels>
          <label mode="any">label.setup.mail.from</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.from']</field>
        </fields>
      </widget>
      <widget name="mail.transport.usetls" type="checkbox">
        <labels>
          <label mode="any">label.setup.mail.transport.usetls</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.transport.usetls']</field>
        </fields>
      </widget>
      <widget name="mail.user" type="text">
        <labels>
          <label mode="any">label.setup.mail.user</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>['mail.user']</field>
        </fields>
      </widget>
    </layout>

    <!-- placeholder layout for custom properties -->
    <layout name="admin_setup_custom_properties">
      <templates>
        <template mode="any">
          /incl/sysinfo/setup_layout_template.xhtml
        </template>
      </templates>
      <properties mode="any">
        <property name="label">label.setup.table.title.custom</property>
      </properties>
    </layout>
  </extension>